package com.cysoft.third.echarts.component.geo;

import lombok.Data;

import java.util.List;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.geo
 * @date 2025/3/13 11:16
 * @desc 地理坐标系组件配置
 */
@Data
public class Geo {

    /**
     * 组件 ID
     */
    private String id;

    /**
     * 是否显示地理坐标系组件
     * 默认值: true
     */
    private Boolean show = true;

    /**
     * 使用的地图名称
     * 默认值: ''
     */
    private String map = "";

    /**
     * 是否开启鼠标缩放和平移漫游
     * 默认值: false
     */
    private Object roam;

    /**
     * 自定义地图投影配置
     */
    private Projection projection;

    /**
     * 当前视角中心点坐标
     */
    private List<Double> center;

    /**
     * 地图长宽比调整系数
     * 默认值: 0.75
     */
    private Double aspectScale = 0.75;

    /**
     * 定位经纬度范围
     */
    private List<List<Double>> boundingCoords;

    /**
     * 当前缩放比例
     * 默认值: 1
     */
    private Double zoom = 1D;

    /**
     * 缩放极限控制
     */
    private ScaleLimit scaleLimit;

    /**
     * 地区名称映射
     */
    private Object nameMap;

    /**
     * 地理要素主键字段
     * 默认值: 'name'
     */
    private String nameProperty = "name";

    /**
     * 选中模式
     * 默认值: false
     */
    private Object selectedMode;

    /**
     * 文本标签配置
     */
    private GeoLabel label;

    /**
     * 图形样式配置
     */
    private ItemStyle itemStyle;

    /**
     * 高亮状态配置
     */
    private Emphasis emphasis;

    /**
     * 选中状态配置
     */
    private Select select;

    /**
     * 淡出状态配置
     */
    private Blur blur;

    /**
     * 图形层叠优先级
     */
    private Integer zlevel;

    /**
     * 图形层叠优先级
     * 默认值: 2
     */
    private Integer z = 2;

    /**
     * 组件左侧位置
     * 默认值: 'auto'
     */
    private String left = "auto";

    /**
     * 组件上侧位置
     * 默认值: 'auto'
     */
    private String top = "auto";

    /**
     * 组件右侧位置
     * 默认值: 'auto'
     */
    private String right = "auto";

    /**
     * 组件下侧位置
     * 默认值: 'auto'
     */
    private String bottom = "auto";

    /**
     * 布局中心点
     */
    private List<String> layoutCenter;

    /**
     * 布局大小
     */
    private Object layoutSize;

    /**
     * 区域配置列表
     */
    private List<Region> regions;

    /**
     * 是否禁用交互事件
     * 默认值: false
     */
    private Boolean silent = false;

    /**
     * 提示框配置
     */
    private Tooltip tooltip;
}
